package com.roy.galaxy.algorithm;

public class 盛最多水的容器 {

    /**
     * 暴力解决 时间复杂度o(n^2) 空间复杂度o(1)   有更加优秀的解决方法
     * @param height
     * @return
     */
    public int maxArea(int[] height) {
        if(height.length <= 1){
            return 0;
        }
        int max = 0;
        for(int i = 0 ; i < height.length ; i ++ ){
            for(int j = i ; j < height.length ; j ++){
                int temp = 0;
                if(height[i] > height[j]){
                    temp = height[j] * Math.abs(i-j);
                }else {
                    temp = height[i] * Math.abs(i-j);
                }
                 if(temp > max){
                     max = temp;
                 }
            }
        }
        return max;
    }

    /**
     * 方法更优秀解：时间复杂度o(n) 空间复杂度o(1)
     * @param height
     * @return
     */
    public int maxArea2(int[] height) {
        int maxarea = 0, l = 0, r = height.length - 1;
        while (l < r) {
            maxarea = Math.max(maxarea, Math.min(height[l], height[r]) * (r - l));
            if (height[l] < height[r])
                l++;
            else
                r--;
        }
        return maxarea;
    }
}
